MCCTeam / Minecraft-Console-Client

Lightweight console for Minecraft chat and automated scripts
https://mccteam.github.io
Other
1.61k stars 390 forks source link

{New Feature] add nuker to auto mine any type of block nearby #2017

Closed Shaurya4356 closed 1 year ago

Shaurya4356 commented 2 years ago

Prerequisites

Console Client Version

latest

Describe your problem

It will be super good if alt an nuke any block nearby (in 4 block radius) , make sure to make it work even while alt is in minecart or riding entities

Suggest a possible solution

make cobblestone miner into universal nuker or just remove x y z location and make it mine anything in range

Attach screenshot here (If applicable)

d

Minecraft Version

1.16.5

Device

Desktop

Operating System

Windows

Daenges commented 2 years ago

While we already have MineCube.cs, which operates like the /fill command, I do not see a nuker (a feature mostly known from modified clients to grief other players property) in MCC, for the same reason a killaura was declined. From a technical perspective this would be no problem. Due to the fact that MCC is open source nobody can prevent you from creating a fork and implement such a feature on your own.

Although it is not meant to, MCC provides (for obvious reasons) many possibilities to mess around on servers that are not your own. I do not see another justification for a Nuker other than griefing other players (if you just want to mine something out, use MineCube.cs, which is currently even reworked #2014 ).

So, to summarize: MCC is supposed to be a helpful tool for admins or on servers which allow the usage. We discourage cheating with MCC and your suggestion would promote it.

If you could provide a use case of this, other than griefing/cheating, we can talk about it again.

Shaurya4356 commented 2 years ago

https://github.com/MCCTeam/Minecraft-Console-Client/issues/2017#issuecomment-1122695811

no no, i dont want it for some griefing purpose lmao it happens to be , that my server has realistic tree falll animation and auto sapling placement plugin(most of the main servers have it now) and i want the nuker just for my minecart-auto tree machine

becuase unlike others i dont have strong pc to run multiple alts- i think this is the objective of mcc client.

so that i can use alts to chop down some tree. otherwise its hard to compete there.

if possible make block selective nuker - so i can mine logs selectively.

.....and if you are still concerned about nuker, make a nuker, but now it needs two coords to define a cuboid, in which it mines selected block(make sure that it works while my alts moves in a minecart)

Daenges commented 2 years ago

Although you might not use it for malicious purposes, adding this feature for everyone sounds dangerous.

If you are using a minecart, you could use use a slightly altered version of the cobblestoneminer.cs. What you described as select a cube and mine everything in it is what MineCube.cs does. There you would not even need a minecart, since the client automatically walks to blocks it is going to mine.

If you want to mine a specific cube over and over again, just use a task for it.

Only disadvantage is, that the script is currently in a beta state and might break at some points. But therefore I am currently reworking it.

Shaurya4356 commented 2 years ago

https://github.com/MCCTeam/Minecraft-Console-Client/issues/2017#issuecomment-1134392795

fare enough, your concern is also reasonable

how about add a autoclicker, with sub-features like modes=hold/click button= left/right delay in case of mode=click

it will do the job

Daenges commented 2 years ago

If I understood your problem correctly, you want to use the client to break blocks. You can edit the cobblestone miner to break any block at the selected location by removing the switch statement:

Like this: (Click me) ```cs //MCCScript 1.0 MCC.LoadBot(new CobblestoneMiner()); //MCCScript Extensions public class CobblestoneMiner: ChatBot { // === CONFIG - REPLACE COBBLESTONE LOCATION x y z VALUES HERE === // You need to stand in front of the cobblestone block to mine // Also make sure the Cobblestone will regenerate e.g. using water and lava Location cobblestone = new Location(x, y, z); // === END OF CONFIG === public override void Initialize() { LogToConsole("Bot enabled!"); } public override void Update() { DigBlock(cobblestone); } } ```

Or if you need a relative position, since you are constantly moving in a minecart..

Like this: ```cs //MCCScript 1.0 MCC.LoadBot(new CobblestoneMiner()); //MCCScript Extensions public class CobblestoneMiner: ChatBot { Location relativeLocationToMine = Location.Zero; public override void Initialize() { LogToConsole("Bot enabled!"); } public override void Update() { relativeLocationToMine = GetCurrentLocation() + new Location(/*RelativeX*/, /*RelativeY*/, /*RelativeZ*/); DigBlock(relativeLocationToMine); } } ```

This should be able to dig a block on your desired position. Here is my tutorial on how to set up this script. Before executing you need to enter your coordinates for x,y,z or RelativeX, RelativeY, RelativeZ. Did not test the code, so let me know if you got errors.

Shaurya4356 commented 2 years ago

i want relative position- yes if possible make it block selective, cuz i dont want to break saplings and how to add multiple relative positions?

Shaurya4356 commented 2 years ago

//MCCScript 1.0

MCC.LoadBot(new CobblestoneMiner());

//MCCScript Extensions

public class CobblestoneMiner: ChatBot { Location relativeLocationToMine = Location.Zero;

public override void Initialize()
{
    LogToConsole("Bot enabled!");
}

public override void Update()
{
    relativeLocationToMine = GetCurrentLocation() + new Location(/*RelativeX*/, /*RelativeY*/, /*RelativeZ*/);
    Material blockType = GetWorld().GetBlock(relativeLocationToMine).Type;
    switch (blockType)
    {
        case Material.Stone:
            DigBlock(relativeLocationToMine);
            break;
        case Material.Cobblestone:
            DigBlock(relativeLocationToMine);
            break;
    }
}

}

Shaurya4356 commented 2 years ago

and how to encode spruce log into material, the code for it? material.SpruceLogs?

Daenges commented 2 years ago

Material.SpruceLog

Daenges commented 2 years ago

and how to add multiple relative positions?

In the current state of the script you can not do this. Just place the rails in a way that gets the blocks in the relative spot that is mined anyway.

Shaurya4356 commented 2 years ago

and yes how to correcting format this relativeLocationToMine = GetCurrentLocation() + new Location(/RelativeX/, /RelativeY/, /RelativeZ/); if i want x+1, y-1, z+2

Daenges commented 2 years ago

new Location(1, -1, 2);

Shaurya4356 commented 2 years ago

`//MCCScript 1.0

MCC.LoadBot(new CobblestoneMiner());

//MCCScript Extensions

public class CobblestoneMiner: ChatBot { Location relativeLocationToMine = Location.Zero;

public override void Initialize() { LogToConsole("Bot enabled!"); }

public override void Update() { relativeLocationToMine = GetCurrentLocation() + new Location(+1,+1,0); Material blockType = GetWorld().GetBlock(relativeLocationToMine).Type; switch (blockType) { case Material.SpruceLog: DigBlock(relativeLocationToMine); break;

}

} }`

this generate this error [WARN] Update: Got error from ScriptLoader.Script+CobblestoneMiner: System.NullReferenceException: Object reference not set to an instance of an object. at ScriptLoader.Script.CobblestoneMiner.Update() at MinecraftClient.McClient.OnUpdate()

Daenges commented 2 years ago

Okay. After searching what the problem might be for way too long... You need to turn on terrainandmovements and inventoryhandling in the config.

Shaurya4356 commented 2 years ago

works, if player is on ground, but i doesn't while player is in minecart it even does not swing his axe in minecart. tried all permutation of possible relative position but nope.

script is good if i tp the alt to the spot but isnt working while movement/minecart.

https://filebin.net/0jstges3rcu1hi9b

Daenges commented 2 years ago

If the minecart version does not work, you need to rely on walking. The MineCube script should work here as long as there is a 2 high area free from blocks above the cube you want to mine. It will try to mine all blocks in a selected area.

Daenges commented 2 years ago

You can also get the WIP version here. You could stop the time, how long the script needs to clear the area and write a task to start it from time to time.

milutinke commented 1 year ago

We won't add any features that could be used for griefing to the client.