Advanced Gathering icon

Advanced Gathering -----

Highly configurable timber and vein mining plugin



gathering.png
This plugin was just re-written and may contain some bugs.
Just report them to me so i can fix them fast.


dc_icon.png

description_banner.png
Advanced gathering aims on combining timberering with vein mining. Additionally crop harvesting is also a planned feature. This plugin is very configurable and can be tuned for either best looks or insane performance.

dependencies_banner.png
This plugin has only a single dependency:

- SmileCore

Remember that the core library depends on ProtocolLib and PlaceholderAPI.

features_banner.png

This plugin shines with a vide variety of options to ensure the best fit for your server. Timbering trees is done in 3 iterations. Scan, Safety, Breaking.
Each can be modified. Also implemented is a very powerful condition system that allows automatic integration with all plugins that support placeholers.

! Timbering is disabled on default !
Every player can enable it for himself by using
Code (Text):
/ag toggle timber
Example setup:

Code (Text):
McMMO Woodcutting level < 10 => Not allowed to timber
McMMO Woodcutting level 20+ => Trees with a size of 50 allowed
McMMO Woodcutting level 50+ => Trees with a size of 100 + 1.5 * lvl allowed
Infinite possibilites.

(The marker are just for debugging and are disabled on default)

Smooth Scan -> Smooth Safety -> Instant Break
DropOption: FylToPlayer

[​IMG]


Instant Scan -> Instant Safety -> Instant Break
DropOption: InstantPickup

[​IMG]



Instant Scan -> Smooth Safety -> Smooth Break
DropOption: Drop


[​IMG]


Supports every Block you want and can
be used as a vein miner

[​IMG]


Everything can be edited ingame

[​IMG]
[​IMG]




commands_permissions_banner.png
Commands
Code (Text):
Alias: advancedgathering   gathering   ag

/ag edit trees
/ag edit ores
/ag edit custom

/ag toggle timber
/ag toggle oreminer
Permissions
Code (Text):
advancedgathering.commands.edit.trees
advancedgathering.commands.edit.ores
advancedgathering.commands.edit.custom
advancedgathering.commands.toggle.timber
advancedgathering.commands.toggle.oreminer

Tree specific permissions can be seen/changed ingame


config_banner.png

Pretty much everything can be edited ingame. You can also change the data.json file directly which is however not recommended.

Working with expressions.

Remember to download the needed PAPI expansions!

Expressions can be of arithmetic and/or boolean nature.
True corresponds to 1.0 and false to 0.0

So this expression
Code (Text):
(%player_level% > 10) * 20
Will yield 20.0 if the players level is bigger than 10 and 0.0 otherwise. If it is evaluated as a boolean then everything that is not exactly 0.0 is defined as true.

How to do a chance expression:
Code (Text):
50% chance:
%randomnumber_number_10% > 0.5

Very precise 3.75% chance:
%randomnumber_number_100% > 0.0375
How to check for items like axes:
Code (Text):
%checkitem_matcontains:AXE,inhand:main% = "yes"
Words have to be set into quotes " "

Supported symbols:
Code (Text):
() - Create a parenthetical expression which will be evaluated first (3 * (4 + 1))

e  - Euler's constant (log(e))

pi  - pi (sin(pi))

+  - Add two numbers (1 + 1)

-  - Subtract two numbers, or negate one (3-2, -(4+2))

/  - Divide two numbers (3 / 4)

*  - Multiply two numbers (2 * 3)

^  - Raise one number to the power of another (3^3)

%  - Take the modulus, or division remainder, of one number with another (7 % 4)

abs  - Take the absolute value of a number (abs$1, abs-1)

round  - Rounds a number to the nearest integer (round1.5, round(2.3))

ceil  - Rounds a number up to the nearest integer (ceil1.05)

floor  - Rounds a number down to the nearest integer (floor0.95)

rand  - Generate a random number between 0 and the specified upper bound (rand4)

log  - Get the natural logarithm of a number (log(e))

sqrt  - Get the square root of a number (sqrt4)

cbrt  - Get the cube root of a number (cbrt(8))

sin  - Get the sine of a number (sin$2)

cos  - Get the cosine of a number (cos(2*pi))

tan  - Get the tangent of a number (tanpi)

asin  - Get the arcsine of a number (asin$2)

acos  - Get the arccosine of a number (acos0.45)

atan  - Get the arctangent of a number (atan1)

sinh  - Get the hyperbolic sine of a number (sinh(4))

cosh  - Get the hyperbolic cosine of a number (sinh(4))

true  - Boolean constant representing 1

false  - Boolean constant representing 0

=  - Compare if two numbers are equal (1 = 1 will be 1, 1 = 3 will be 0)

!=  - Compare if two numbers are not equal (1 != 2 will be 1, 1 != 1 will be 0)

>  - Compare if one number is greater than another (1 > 0)

<  - Compare if one number is less than another (0 < 1)

>=  - Compare if one number is greater than or equal to another (1 >= 1)

<=  - Compare if one number is less than or equal to another (0 <= 1)

|  - Boolean or (true | false)

&  - Boolean and (true & true)

!  - Boolean not/inverse (!true)

You can also substitute named expressions from inside the SmileCore folder. The file named-conditions.json lets you write extensive expressions which can later be referred to using two # signs:
Code (Text):
#NameOfExpression#

The file looks like this:
[​IMG]
Resource Information
Author:
----------
Total Downloads: 82,068
First Release: Mar 4, 2019
Last Update: Feb 24, 2023
Category: ---------------
All-Time Rating:
20 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings