Carpet

Carpet

2M Downloads

Allow `carpet fillLimit` to take on values up to 2^31-1

James103 opened this issue ยท 4 comments

commented

Currently (Carpet Mod 1.4.35 and Minecraft 1.16.5), /carpet fillLimit can only take on values up to 20,000,000 (since raised from 19,999,999 in #483). Tweakeroo's fillCloneLimit, which acts pretty much the exact same as /carpet fillLimit, would extend this limit to 1 billion, however, Carpet's fill limit mixin overrides Tweakeroo's mixin, meaning that the maximum fill limit is still 20 million when Carpet mod is installed.

To solve this, I propose raising the maximum value of /carpet filLimit to be Integer.MAX_VALUE = 2,147,483,647. This limit increase basically solves the meta of the conflict that is mentioned in #478 as it is not only greater than Tweakeroo's max fill limit, but is practically infinity for all intents and purposes due to the way the fill limit is calculated.

commented

this needs to happen.

commented

I guess there's a reason why the limit is there (I'd say to prevent watchdog from killing the server after enough time). I've already got some single-player worlds to stall for over 20 seconds with the current limits.

Could still be changed to just be a recommendation for the brave people or those with powerful computers.

commented

20M gives a full 280x280x256 area you can fill with it, which for all intent and purpose is like, I don't see a reason you would need to go that far. Watchdog is not something that is a concern on SP - tick can take as long as you like, but given the new build limit height, its valid to extend.

The reason for a limit in general (why not to have any limit, right?) is to prevent finger slippage, lets say you wanted to clear from 20000 10 20000 and you typed 2000 10 20000 - reasonable limit will prevent you from making a typo.

I personally always run the command first, then see at the vanilla count of blocks and set it little higher for the usecase.

commented

Besides, you can run scripts to fill even larger areas if required. For example, the following script removes all blocks (excluding bedrock, spawners, chests, and end portal frames) within a 1 km radius square of (0, 0), replacing them with air:

volume(-1024, 0, -1024, 1023, 255, 1023, if(block(_) != 'bedrock' && block(_) != 'spawner' && block(_) != 'chest' && block(_) != 'end_portal_frame', set(_, 'air')))