Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// api_version=2
- var script = registerScript({
- name: "MegaWallsAutoAbility",
- version: "1.5",
- authors: ["qodo"],
- description: "Attempts multiple right-click simulation methods for Mega Walls ability."
- });
- var lastActivation = 0;
- var prevExperience = 0;
- var prevLevel = 0;
- function isSword(item) {
- if (!item) return false;
- var name = item.getUnlocalizedName();
- return name && name.toLowerCase().indexOf("sword") !== -1;
- }
- function tryAllRightClickMethods(player, heldItem) {
- // Method 1: Simulate key press
- try {
- var KeyBinding = Java.type("net.minecraft.client.settings.KeyBinding");
- var keyBindUseItem = mc.gameSettings.keyBindUseItem;
- KeyBinding.onTick(keyBindUseItem.getKeyCode());
- Chat.print("Method 1: KeyBinding.onTick called.");
- } catch (e) {
- Chat.print("Method 1 failed: " + e);
- }
- // Method 2: Use playerController
- try {
- mc.playerController.sendUseItem(player, mc.theWorld, heldItem);
- Chat.print("Method 2: playerController.sendUseItem called.");
- } catch (e) {
- Chat.print("Method 2 failed: " + e);
- }
- // Method 3: Send use item packet at player's position
- try {
- var C08PacketPlayerBlockPlacement = Java.type("net.minecraft.network.play.client.C08PacketPlayerBlockPlacement");
- var BlockPos = Java.type("net.minecraft.util.BlockPos");
- var Vec3 = Java.type("net.minecraft.util.Vec3");
- var pos = new BlockPos(player.posX, player.posY - 1, player.posZ);
- var vec = new Vec3(player.posX, player.posY, player.posZ);
- mc.thePlayer.sendQueue.addToSendQueue(new C08PacketPlayerBlockPlacement(pos, 255, heldItem, vec.xCoord, vec.yCoord, vec.zCoord));
- Chat.print("Method 3: C08PacketPlayerBlockPlacement sent.");
- } catch (e) {
- Chat.print("Method 3 failed: " + e);
- }
- // Method 4: Swing item
- try {
- player.swingItem();
- Chat.print("Method 4: player.swingItem called.");
- } catch (e) {
- Chat.print("Method 4 failed: " + e);
- }
- }
- script.registerModule({
- name: "MegaWallsAutoAbility",
- category: "Misc",
- description: "Attempts multiple right-click simulation methods for Mega Walls ability."
- }, function(module) {
- module.on("update", function() {
- var player = mc.thePlayer;
- if (!player) {
- prevExperience = 0;
- prevLevel = 0;
- return;
- }
- // Only check every 2 ticks for performance
- if (player.ticksExisted % 2 !== 0) {
- prevExperience = player.experience;
- prevLevel = player.experienceLevel;
- return;
- }
- // Detect the moment XP bar reaches 100 (from <1.0 to >=1.0 or level from <100 to 100)
- var xpBarJustFilled = prevExperience < 1.0 && player.experience >= 1.0;
- var xpLevelJustReached = prevLevel < 100 && player.experienceLevel == 100;
- if (xpBarJustFilled || xpLevelJustReached) {
- Chat.print("MegaWallsAutoAbility: XP bar or level just reached 100!");
- var heldItem = player.getHeldItem();
- if (!isSword(heldItem)) {
- Chat.print("MegaWallsAutoAbility: Not holding a sword.");
- prevExperience = player.experience;
- prevLevel = player.experienceLevel;
- return;
- }
- // Remove all other safety checks for now
- // Random delay (100–300ms)
- var now = java.lang.System.currentTimeMillis();
- if (now - lastActivation < 100) {
- Chat.print("MegaWallsAutoAbility: Too soon since last activation.");
- prevExperience = player.experience;
- prevLevel = player.experienceLevel;
- return; // Prevent spamming
- }
- var delay = Math.floor(Math.random() * 201) + 100;
- Chat.print("MegaWallsAutoAbility: Scheduling all right-click methods in " + delay + "ms.");
- java.lang.Thread(function() {
- java.lang.Thread.sleep(delay);
- tryAllRightClickMethods(player, heldItem);
- lastActivation = java.lang.System.currentTimeMillis();
- Chat.print("MegaWallsAutoAbility: All right-click methods attempted.");
- }).start();
- }
- prevExperience = player.experience;
- prevLevel = player.experienceLevel;
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment