Definitely looks great for a first script, the only thing I noticed is this:
@Override
public boolean canProcess() {
//If player inventory *IS NOT* full and player *IS NOT* at the cabbage patch, this evaluates to true
if(!api.getInventory().isFull() && !Cabbage_Area.contains(api.myPlayer())) {
return true;
} else {
return false;
}
}
You can write this way easier:
@Override
public boolean canProcess() {
//If player inventory *IS NOT* full and player *IS NOT* at the cabbage patch, this evaluates to true
return !api.getInventory().isFull() && !Cabbage_Area.contains(api.myPlayer()));
}
If you have any questions feel free to ask