Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

LiquidBounce Forum

  1. Home
  2. Scripts
  3. AutoGapple(re-upload) (Legacy)

AutoGapple(re-upload) (Legacy)

Scheduled Pinned Locked Moved Scripts
19 Posts 8 Posters 2.8k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • LolMCL Offline
    LolMCL Offline
    LolMC
    wrote on last edited by LolMC
    #1

    AutoGapple
    Version:1.3;1.4
    Description:Auto eat Gapple when your health too low
    Changlog:

    • 1.0 : first release(no more release old code lol)
    • 1.1 : fix script lock the hotbar when regen effect active
      fix script sometime block the sword(i think i doesn't fix that)
      -1.2:make by commandblock2(but cant unblock when no Gapple)
      -1.3:fix unable to block manully when no gapple in inventory(iam too lazy to writing code without Core)
      -1.4:update eat slient mode(i learn it from jigsaw src),iam lazy to covert 1.3 to 1.4(someone can do that help me)
    //Copyright 2020 commandblock2 distributed under AGPL-3.0-or-later
    GuiInventory = Java.type("net.minecraft.client.gui.inventory.GuiInventory")
    Potion = Java.type('net.minecraft.potion.Potion')
    
    var originalIndex = null
    var inventoryIndex = null
    module =
    {
        name: "AutoGapple",
        description: "Eat gapple when your health is low",
        author: "commandblock2 && Lolmc",
        category: "combat",
        values:
            [
                health = value.createFloat("Health", 10, 1, 20),
                itemSwitchDelay = value.createInteger("SwitchDelayms", 100, 0, 1000)
            ],
    
        onUpdate: function () {
            if (mc.thePlayer.getHealth() <= health.get() && !mc.thePlayer.isPotionActive(Potion.regeneration)) {
                gAppleIndex = InventoryUtils.findItem(36, 45, Items.golden_apple)
                gAppleIndex = gAppleIndex == -1 ? InventoryUtils.findItem(9, 36, Items.golden_apple) : gAppleIndex
    
                if (originalIndex == null) { // wtffffff have to check null because if (originalIndex) doesn't work when it equas to 0
                    originalIndex = mc.thePlayer.inventory.currentItem
                }
    
    
                if (gAppleIndex >= 36 && gAppleIndex < 45) {
                    //switch to gapple
                    mc.thePlayer.inventory.currentItem = gAppleIndex - 36
    
                } else if (gAppleIndex >= 9 && gAppleIndex < 36 && !(mc.currentScreen instanceof GuiInventory)) {
                    //switch gapple and 36 (first slot)
                    inventoryIndex = gAppleIndex
                    switchGapple(inventoryIndex)
                }
                if(gAppleIndex != -1) {    // fix block when no gapple
                mc.gameSettings.keyBindUseItem.pressed = true
           }
    
            }
            else {
                reset()
            }
        }
    }
    function reset() {
        if (originalIndex != null || inventoryIndex != null)
            mc.gameSettings.keyBindUseItem.pressed = false
    
        if (originalIndex != null ) {
            mc.thePlayer.inventory.currentItem = originalIndex;
            originalIndex = null
        }
    
        if (inventoryIndex != null) {
            switchGapple(inventoryIndex)
            inventoryIndex = null
        }
    
    }
    
    function switchGapple(index) {
        //open inventory (I don't care about when you are on horse, implement it yourself)
        mc.getNetHandler().addToSendQueue(new C16PacketClientStatus(C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT));
        mc.displayGuiScreen(new GuiInventory(mc.thePlayer));
    
        timeout(itemSwitchDelay.get(), function () {
            slot = mc.thePlayer.inventoryContainer.getSlot(index)
    
            mc.playerController.windowClick(mc.currentScreen.inventorySlots.windowId, slot.slotNumber, 0, 2, mc.thePlayer)
            mc.thePlayer.closeScreen()
        })
    }
    
    script.import("Core.lib")
    
    

    1.4 code:

    //Copyright 2020 commandblock2 distributed under AGPL-3.0-or-later
    GuiInventory = Java.type("net.minecraft.client.gui.inventory.GuiInventory")
    Potion = Java.type('net.minecraft.potion.Potion')
    C09PacketHeldItemChange = Java.type('net.minecraft.network.play.client.C09PacketHeldItemChange')
    C03PacketPlayer = Java.type('net.minecraft.network.play.client.C03PacketPlayer')
    C08PacketPlayerBlockPlacement = Java.type('net.minecraft.network.play.client.C08PacketPlayerBlockPlacement')
    MStimer = Java.type('net.ccbluex.liquidbounce.utils.timer.MSTimer')
    var tick = 0
    var originalIndex = null
    var inventoryIndex = null
    module =
    {
        name: "AutoGapplev2",
        description: "Eat gapple when your health is low",
        author: "Lolmc",
        category: "Player",
        values:
            [
                health = value.createFloat("Health", 10, 1, 20),
                itemSwitchDelay = value.createInteger("Tick", 100, 0, 1000)
            ],
    
        onUpdate: function () {
            var timer = new MSTimer()
            //if(!timer.hasTimePassed(itemSwitchDelay.get())) 
              // return;
              tick++
              if (mc.thePlayer.getHealth() > health.get()) {
                tick = 0
            }
    
            if (mc.thePlayer.getHealth() <= health.get() && tick == itemSwitchDelay.get()) {
                 
               
               
                gAppleIndex = InventoryUtils.findItem(36, 45, Items.golden_apple)
                gAppleIndex = gAppleIndex == -1 ? InventoryUtils.findItem(9, 36, Items.golden_apple) : gAppleIndex
    
                if(gAppleIndex != -1) {
                mc.thePlayer.sendQueue.addToSendQueue(new C09PacketHeldItemChange(gAppleIndex - 36));
                mc.thePlayer.sendQueue.addToSendQueue(new C08PacketPlayerBlockPlacement(mc.thePlayer.inventory.mainInventory[gAppleIndex - 36]));
                for (var i = 0; i < 32; i++) {
                mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer());
                }
                //mc.playerController.onStoppedUsingItem(mc.thePlayer);
                mc.thePlayer.stopUsingItem();
                mc.thePlayer.sendQueue.addToSendQueue(new C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem));
                tick = 0
                }
                
                } else if (gAppleIndex >= 9 && gAppleIndex < 36 && !(mc.currentScreen instanceof GuiInventory)) {
                    //switch gapple and 36 (first slot)
                    inventoryIndex = gAppleIndex
                    switchGapple(inventoryIndex)
                    tick = 0
                    return;
                }
            }
        }
    
    
    function reset() {
        if (originalIndex != null || inventoryIndex != null)
            mc.gameSettings.keyBindUseItem.pressed = false
    
        if (originalIndex != null ) {
            mc.thePlayer.inventory.currentItem = originalIndex;
            originalIndex = null
        }
    
        if (inventoryIndex != null) {
            switchGapple(inventoryIndex)
            inventoryIndex = null
        }
    
    }
    
    function switchGapple(index) {
        //open inventory (I don't care about when you are on horse, implement it yourself)
        mc.getNetHandler().addToSendQueue(new C16PacketClientStatus(C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT));
        mc.displayGuiScreen(new GuiInventory(mc.thePlayer));
    
        timeout(itemSwitchDelay.get(), function () {
            slot = mc.thePlayer.inventoryContainer.getSlot(index)
    
            mc.playerController.windowClick(mc.currentScreen.inventorySlots.windowId, slot.slotNumber, 0, 2, mc.thePlayer)
            mc.thePlayer.closeScreen()
        })
    }
    
    script.import("Core.lib")
    

    Core: Download

    1 Reply Last reply
    1
    • ChocoPie_ismeC Offline
      ChocoPie_ismeC Offline
      ChocoPie_isme Banned
      wrote on last edited by
      #2

      it's in my script bag

      1 Reply Last reply
      0
      • C Offline
        C Offline
        commandblock2
        wrote on last edited by commandblock2
        #3

        Many thanks to Lolmc, his ideas inspired me of how I can make a AutoGapple
        I have rewritten this using scriptAPIv1/Core.lib with 2 more function.

        • Automatically go back to the original slot instead of the fixed slot in setting
        • Can find the apple in the inventory (not limited to hotbar).

        https://github.com/commandblock2/scripts/blob/master/combat/AutoGapple.js

        //Copyright 2020 commandblock2 distributed under AGPL-3.0-or-later
        GuiInventory = Java.type("net.minecraft.client.gui.inventory.GuiInventory")
        Potion = Java.type('net.minecraft.potion.Potion')
        
        var originalIndex = null
        var inventoryIndex = null
        module =
        {
            name: "AutoGapple",
            description: "Eat gapple when your health is low",
            author: "commandblock2",
            category: "combat",
            values:
                [
                    health = value.createFloat("Health", 10, 1, 20),
                    itemSwitchDelay = value.createInteger("SwitchDelayms", 100, 0, 1000)
                ],
        
            onUpdate: function () {
                if (mc.thePlayer.getHealth() <= health.get() && !mc.thePlayer.isPotionActive(Potion.regeneration)) {
                    gAppleIndex = InventoryUtils.findItem(36, 45, Items.golden_apple)
                    gAppleIndex = gAppleIndex == -1 ? InventoryUtils.findItem(9, 36, Items.golden_apple) : gAppleIndex
        
                    if (originalIndex == null) { // wtffffff have to check null because if (originalIndex) doesn't work when it equas to 0
                        originalIndex = mc.thePlayer.inventory.currentItem
                    }
        
        
                    if (gAppleIndex >= 36 && gAppleIndex < 45) {
                        //switch to gapple
                        mc.thePlayer.inventory.currentItem = gAppleIndex - 36
        
                    } else if (gAppleIndex >= 9 && gAppleIndex < 36 && !(mc.currentScreen instanceof GuiInventory)) {
                        //switch gapple and 36 (first slot)
                        inventoryIndex = gAppleIndex
                        switchGapple(inventoryIndex)
                    }
        
                    mc.gameSettings.keyBindUseItem.pressed = true
        
                }
                else {
                    reset()
                }
            }
        }
        function reset() {
            if (originalIndex != null || inventoryIndex != null)
                mc.gameSettings.keyBindUseItem.pressed = false
        
            if (originalIndex != null ) {
                mc.thePlayer.inventory.currentItem = originalIndex;
                originalIndex = null
            }
        
            if (inventoryIndex != null) {
                switchGapple(inventoryIndex)
                inventoryIndex = null
            }
        
        }
        
        function switchGapple(index) {
            //open inventory (I don't care about when you are on horse, implement it yourself)
            mc.getNetHandler().addToSendQueue(new C16PacketClientStatus(C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT));
            mc.displayGuiScreen(new GuiInventory(mc.thePlayer));
        
            timeout(itemSwitchDelay.get(), function () {
                slot = mc.thePlayer.inventoryContainer.getSlot(index)
        
                mc.playerController.windowClick(mc.currentScreen.inventorySlots.windowId, slot.slotNumber, 0, 2, mc.thePlayer)
                mc.thePlayer.closeScreen()
            })
        }
        
        script.import("Core.lib")
        
        
        

        Edit: The first version will make u unable to block manully.

        1 Reply Last reply
        0
        • LolMCL Offline
          LolMCL Offline
          LolMC
          wrote on last edited by
          #4

          thanks
          you have teach me how to use InventoryUtils
          i have try that before but not work 😄

          C 1 Reply Last reply
          0
          • ChocoPie_ismeC Offline
            ChocoPie_ismeC Offline
            ChocoPie_isme Banned
            wrote on last edited by
            #5

            you can send C09 packet for changing the slot silently, and maybe use C08 for eating, C07 for stop eating (didn't test C08 and C07)

            LolMCL 1 Reply Last reply
            0
            • LolMCL Offline
              LolMCL Offline
              LolMC
              replied to ChocoPie_isme on last edited by
              #6

              @ChocoPie_isme said in AutoGapple(re-upload):

              you can send C09 packet for changing the slot silently, and maybe use C08 for eating, C07 for stop eating (didn't test C08 and C07)

              why do u need a autogapple silently?

              ChocoPie_ismeC 1 Reply Last reply
              0
              • ChocoPie_ismeC Offline
                ChocoPie_ismeC Offline
                ChocoPie_isme Banned
                replied to LolMC on last edited by
                #7

                @LolMC said in AutoGapple(re-upload):

                @ChocoPie_isme said in AutoGapple(re-upload):

                you can send C09 packet for changing the slot silently, and maybe use C08 for eating, C07 for stop eating (didn't test C08 and C07)

                why do u need a autogapple silently?

                bcz some noobs think that silent things is cool and only pros can do it (and it's cool)

                A 1 Reply Last reply
                0
                • A Offline
                  A Offline
                  Aftery
                  replied to ChocoPie_isme on last edited by
                  #8
                  This post is deleted!
                  1 Reply Last reply
                  0
                  • C Offline
                    C Offline
                    commandblock2
                    replied to LolMC on last edited by
                    #9

                    @LolMC said in AutoGapple(re-upload):

                    thanks
                    you have teach me how to use InventoryUtils
                    i have try that before but not work 😄

                    It was kind of skidded from AutoSoup xDDDDDD

                    @ChocoPie_isme said in AutoGapple(re-upload):

                    you can send C09 packet for changing the slot silently, and maybe use C08 for eating, C07 for stop eating (didn't test C08 and C07)

                    Indeed you are correct, C07/C08/C09 packets should work. It would take more time for me to code a silent yet legit and working one. But most importantly the none silent one is naturally compatible to the FastEat(conditionally C03 packet sender), a silent one could take extra work.

                    1 Reply Last reply
                    0
                    • AzureA Offline
                      AzureA Offline
                      Azure
                      wrote on last edited by
                      #10

                      pzo and I dont know why I wrote this because the limit is 8 characters

                      1 Reply Last reply
                      0
                      • LolMCL Offline
                        LolMCL Offline
                        LolMC
                        wrote on last edited by
                        #11

                        new 1.3 update

                        1 Reply Last reply
                        0
                        • C Offline
                          C Offline
                          Cu6eSu9ar.
                          wrote on last edited by
                          #12

                          Bro,you know since me attack other player eat Gapple.I died

                          1 Reply Last reply
                          0
                          • LolMCL Offline
                            LolMCL Offline
                            LolMC
                            wrote on last edited by
                            #13

                            just turn on fastuse instant 🙂
                            but it not work on hypixel and some server

                            1 Reply Last reply
                            0
                            • A Offline
                              A Offline
                              Aftery
                              wrote on last edited by
                              #14
                              This post is deleted!
                              1 Reply Last reply
                              0
                              • LolMCL Offline
                                LolMCL Offline
                                LolMC
                                wrote on last edited by
                                #15
                                This post is deleted!
                                1 Reply Last reply
                                0
                                • LolMCL Offline
                                  LolMCL Offline
                                  LolMC
                                  wrote on last edited by
                                  #16

                                  ok
                                  i have done autogapple slient
                                  i will release the code after add it to main code

                                  1 Reply Last reply
                                  0
                                  • ? Offline
                                    ? Offline
                                    A Former User
                                    wrote on last edited by
                                    #17

                                    I think it's better to avoid nullable variables.

                                    //Copyright 2020 commandblock2 distributed under AGPL-3.0-or-later
                                    GuiInventory = Java.type("net.minecraft.client.gui.inventory.GuiInventory");
                                    Potion = Java.type('net.minecraft.potion.Potion');
                                    
                                    var originalIndex = -1;
                                    
                                    module = {
                                        name: "AutoGapple",
                                        description: "Eat gapple when your health is low",
                                        author: "commandblock2 && Lolmc",
                                        category: "combat",
                                        values: [
                                            health = value.createFloat("Health", 10, 1, 20),
                                            itemSwitchDelay = value.createInteger("SwitchDelayms", 100, 0, 1000)
                                        ],
                                        onDisable: function() {
                                            originalIndex = -1;
                                        },
                                        onUpdate: function () {
                                            if (mc.thePlayer.getHealth() <= health.get() && !mc.thePlayer.isPotionActive(Potion.regeneration)) {
                                                var gAppleIndex = InventoryUtils.findItem(9, 36, Items.golden_apple);
                                    
                                                if ((gAppleIndex - 9 | 35 - gAppleIndex) >= 0 && InventoryUtils.hasSpaceHotbar()) {
                                                    if (!(mc.currentScreen instanceof GuiInventory))
                                                        mc.getNetHandler().addToSendQueue(new C16PacketClientStatus(C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT));
                                                    
                                                    mc.playerController.windowClick(0, gAppleIndex, 0, 1, mc.thePlayer);//Shift + left mouse click
                                    
                                                    if (!(mc.currentScreen instanceof GuiInventory))
                                                        mc.getNetHandler().addToSendQueue(new C0DPacketCloseWindow());
                                    
                                                    return;
                                                } else if ((gAppleIndex - 36 | 44 - gAppleIndex) >= 0 && gAppleIndex != mc.thePlayer.inventory.currentItem) {
                                                    if (!~originalIndex) 
                                                        originalIndex = mc.thePlayer.inventory.currentItem;
                                                    mc.thePlayer.inventory.currentItem = gAppleIndex - 36;
                                                }
                                    
                                                if (!~gAppleIndex)// fix block when no gapple
                                                    mc.gameSettings.keyBindUseItem.pressed = true;
                                    
                                            } else if (!~originalIndex) {
                                                mc.gameSettings.keyBindUseItem.pressed = false;
                                                mc.thePlayer.inventory.currentItem = originalIndex;
                                                originalIndex = -1;
                                            }
                                        }
                                    }
                                    
                                    script.import("Core.lib")
                                    
                                    1 Reply Last reply
                                    0
                                    • LolMCL Offline
                                      LolMCL Offline
                                      LolMC
                                      wrote on last edited by
                                      #18

                                      -1.4:update eat slient mode(i learn it from jigsaw src),iam lazy to covert 1.3 to 1.4(someone can do that help me)

                                      1 Reply Last reply
                                      0
                                      • FacundoF Offline
                                        FacundoF Offline
                                        Facundo
                                        wrote on last edited by
                                        #19

                                        when i use it i always eat 2 apple is there any way i can eat only 1?

                                        1 Reply Last reply
                                        0

                                        About
                                        • Terms of Service
                                        • Privacy Policy
                                        • Status
                                        • Contact Us
                                        Downloads
                                        • Releases
                                        • Source code
                                        • License
                                        Docs
                                        • Tutorials
                                        • CustomHUD
                                        • AutoSettings
                                        • ScriptAPI
                                        Community
                                        • Forum
                                        • Guilded
                                        • YouTube
                                        • Twitter
                                        • D.Tube
                                        • Login

                                        • Login or register to search.
                                        • First post
                                          Last post
                                        0
                                        • Categories
                                        • Recent
                                        • Tags
                                        • Popular
                                        • Users
                                        • Groups