Farming mechanics testing
SlimeDog opened this issue · 39 comments
Spigot 1.13.1 latest
EHM 1.13-alpha
The following farming mechanics are enabled on my servers:
- Water sources cannot be moved with buckets.
- Crops die slowly, turn into dead bushes, and their farmland turns into dirt.
- Crops cannot be grown in deserts.
- Crops are broken by snowfall. A cold-weather farm can be protected with a roof.
- Netherwart cannot be farmed.
- Sheep grow only white wool.
- Crowded animals will die off to prune their herds.
- Animals drop no experience.
Test results:
- FAIL: Warning occurs when water is drawn with a bucket, but the water can be placed.
- FAIL: There is no evidence of crop death.
- FAIL: Crops can be grown in desert and desert_hills biomes.
- Not tested.
- FAIL: Netherwart can be farmed.
- FAIL: /summon sheep produces sheep of all colors. Naturally spawned sheep of all colors inhabit the world.
- UNCLEAR: Overcrowded sheep (in a fenced enclosure) exhibited lots of blood effects, but the number of sheep didn't seem to change.
- Confirmed.
Oh yea, I commented out the portion that changes the water source block into a non-source block. I'm not sure how to do it since in 1.13, WATER is a single material. And there doesn't seem to be a Water
BlockData type...?
Yep and yep. I use another plugin that renders water acidic, so that adds to the extra hardness.
Regarding sheep - the "only regrow white wool" means exactly that - sheep will only "regrow" white wool after being sheared. The color isn't changed on spawn, but on the SheepRegrowWoolEvent
Now if the config option is inaccurately worded... well that's wonderful. Though, technically all sheep spawn with wool already present (idk about baby sheep), so it'd be technically correct I guess...
Regarding nether wart farming, it seems that nether wart, when broken, should only drop exactly 1 nether wart instead of multiple. (Though, it should also prevent them from placing nether wart too...)
Regarding sheep - the "only regrow white wool" means exactly that - sheep will only "regrow" white wool after being sheared. The color isn't changed on spawn, but on the
SheepRegrowWoolEvent
Oh! Well, never mind. :)
Regarding nether wart farming, it seems that nether wart, when broken, should only drop exactly 1 nether wart instead of multiple. (Though, it should also prevent them from placing nether wart too...)
Agreed. At present, it grows (ages), and once aged, drops multiple netherwart items.
and once aged, drops multiple netherwart items.
Ok so first what do you mean by farming, you mean breaking it? Placing it? And in this quote, do you mean it drops automatically or after the player breaks it?
I only see NETHER_WART
and NETHER_WART_BLOCK
, the former I'm assuming refers only to the item and the latter I'm assuming is the block I'd believe would include all stages...
Let me clarity. "Netherwart cannot be farmed" could be interpreted in a number of ways:
- It cannot be planted (if you happen to have some from, say, the nether). FAIL: It can be planted on soul sand, as usual.
- It will not grow (age). FAIL: It ages from 0 when planted to 3 when fully mature.
- It cannot be harvested. FAIL: It can be harvested, and drops multiple nether_wart items. Only one item is planted, but four are harvested when fully mature.
All of the above refer to the item minecraft:nether_wart. minecraft:nether_wart_block is a new block, which is crafted from 9 nether_wart items.
Ah, that explains a lot, thanks. Is nether_wart_block a 1.13 thing? If so, then I suspect that NETHER_WART_BLOCK
was used in pre-1.13 to refer to the actual nether wart, similar to how BEETROOT_BLOCK
differentiated from the BEETROOT
item (BEETROOT_BLOCK
no longer exists as a Material enum).
As for weak crops in general, this may also be a 1.13 thing. I went ahead and changed the data check (which is deprecated) from value 7 or greater to value 2 or greater.
Desert conditions are harsher but actually do not guarantee death (Internally in code, it's not a guaranteed crop death, but its chances to die are increased.)
Ah, that explains a lot, thanks. Is nether_wart_block a 1.13 thing? ...
nether_wart_block was added in MC 1.10, according to https://minecraft.gamepedia.com/Nether_Wart_Block
As for weak crops in general, this may also be a 1.13 thing. I went ahead and changed the data check (which is deprecated) from value 7 or greater to value 2 or greater.
Desert conditions are harsher but actually do not guarantee death (Internally in code, it's not a guaranteed crop death, but its chances to die are increased.)
I will test again when the next release drops.
nether_wart_block was added in MC 1.10
Hmmmm..... not sure then why it was checking for NETHER_WART_BLOCK. If I made that change years ago, that was quite ignorant of me... I may have assumed it was similar to BEETROOT_BLOCK.
The following farming mechanics are configured on my servers:
Farming:
Weak Crops:
Enable: true
Loss Rate: 25
Infertile Deserts: true
Snow Breaks Crops: true
Cant Craft Melonseeds: true
No Bonemeal On Mushrooms: true
No Farming Nether Wart: true
Sheep Grow Only White Wool: true
Squid Only Spawn In Ocean: true
Buckets Dont Move Water Sources: true
Animal Experience Nerf: true
Iron Golem Nerf: true
Animal Overcrowding Control:
Enable: true
# Maximum amount of animals allowed in a small area before they start dying
Threshold: 10
Test results:
- Succeed: Melon seeds cannot be crafted.
- Succeed: Bonemeal does not cause mushrooms to grow. Tested: brown_mushroom, red_mushroom.
- Succeed: Animals do not drop experience. Tested: cow, pig, sheep. (Hostiles do drop experience.
- Succeed: Nether wart cannot be farmed in overworld or nether world. Is nether world restriction intended (so that player has to find natural nether wart?
- FAIL[1]: There is no evidence of crop death. All crops in the test were planted long ago, so are at maximum age (either 3 or 7 depending on crop).
- PARTIAL FAIL[2]: Crops grown in desert die with some small probability. Melon did not grow. Once at maturity, the crops do not die. Waited more than 90 minutes IRL. Tested: beetroot, carrot, melon, potato, pumpkin, wheat.
- FAIL[3]: Snow does not appear to break crops. Waited more than 20 minutes. Tested: wheat.
- FAIL[4]: Sheared sheep do not grow wool at all. Waited more than 90 minutes IRL.
- FAIL[5]: Squid can be spawned in confined water. Test: /summon squid.
- FAIL[6]: Warning occurs when water is drawn with a bucket, but the water can be placed.
Tested: creeper, spider.) - FAIL[7]: Overcrowded animals (in 5x5 fenced enclosure) exhibited lots of blood effects when the count exceeded the limit, but the excess animals were not despawned. Final count in enclosure: 17. Tested: sheep, via summon command.
- Untested[8]: Iron golem nerf. Note that entity name changed to villager_golem in 1.13.
Feature requests:
- IMHO, desert crops do not die fast enough to discourage desert farming; the probability should be much higher.
- Bonemeal should not improve crop growth in desert (and other hot) biomes.
Squid can be spawned in confined water. Test: /summon squid.
Will check later, but I believe the spawn reason is checked for a natural spawn, else it ignores. It basically checks if it was spawned in an ocean biome or not iirc.
Overcrowded animals (in 5x5 fenced enclosure) exhibited lots of blood effects when the count exceeded the limit, but the excess animals were not despawned.
Animals are damaged, not despawned. It should be applying damage every 10 seconds or so (which should also cause the animals to scram a little, in an attempt to spread out themselves. Eventually the damage should kill them though. You may want to check if plugins are preventing damage from animals to occur (since we set the damage source as the animal itself when calling animal#damage
)
3.13 alpha 3 available, just only a couple changes (included the suggested soft blocks, and hopefully the water source evaporates now).
FAIL[4]: Sheared sheep do not grow wool at all. Waited more than 90 minutes IRL.
This event is not canceled by EHM.
No idea what was going on with the mass of sheared sheep above. I just tested a single sheared sheep, and it grew wool as expected.
Note that bucket is empty in inventory until some manipulation occurs; it does contain water.
?? no idea what you mean here
No idea what was going on with the mass of sheared sheep above. I just tested a single sheared sheep, and it grew wool as expected.
Perhaps you logged out, causing the chunks (and entities within) to unload, and then logged in later to check?
UPDATED: This comment referred to alpha2.
When I right-click the bucket in-hand to empty it, the event is cancelled, but the bucket in-hand is empty. If I do some inventory manipulation (open inventory, for example) the water/lava reappears in the bucket.
I stayed in the chunk with a corral full of 20 sheep, for 90 minutes, waiting for them to grow wool. They did not. I will try to reproduce it.
UPDATED: This comment referred to alpha2.
Water source evaporation confirmed. Note that bucket is empty in inventory until some manipulation occurs; it does contain water.
They may need grass or something to regrow wool. Idk.
As for the bucket thing, it shouldn't be canceled - so are you saying the bucket is never actually emptied?
UPDATED: This comment referred to alpha2.
The bucket is emptied. Temporarily. After any inventory manipulation, it is full again.
So I looked at the code for this a couple days ago, and it isn't canceling the empty event. It does cancel fill events when a player attempts to re-pickup the water source block a tick before it turns into a non-source block. Can you confirm with just EHM on? Can you also empty that seemingly-filled bucket?
Also, the empty event shouldn't be canceled at all... It'll print a message but it still places the water block yes?
UPDATED: This comment referred to alpha2.
OK, starting over. I may have conflated some of the above with another plugin that affects water buckets. That is now disabled.
Spigot 1.13.2 latest
EHM 1.13.alpha.2
biome: Beach
surface: sand
ExtraHardMode.Farming.Buckets Dont Move Water Sources: true
When I empty a water_bucket, a water source block is placed and water spreads to adjacent blocks. I am then holding an empty bucket. The water does not evaporate; I waited for 20 IRL minutes.
I can pick up the water source block with the empty bucket. The water evaporates, and I am then holding a water_bucket.
Ok, so water source doesn't evaporate but bucket is indeed emptied, ok.
Does F3 debug info show you anything about water level?
UPDATED: This comment referred to alpha2.
Targeted Fluid
minecraft:flowing_water
falling: false
level: 6 (at the source block) to 1 (at the periphery)
#minecraft:water
Mk, Levelled BlockData is inverted I guess, with 0 being defined as the source, and 1-7 as the varying water heights. https://hub.spigotmc.org/javadocs/spigot/org/bukkit/block/data/Levelled.html
So the source block shouldn't have any level at all in F3 debug, it should just be "water." The physics should be updating for it, unless the server is specifically checking for it to be not present anymore...? Because you shouldn't be able to pick it up either.
Also can you try with alpha 3 since that's where I actually set the blockdata.
UPDATED: This comment referred to alpha2.
CORRECTED:
At the source block:
Targeted Fluid
minecraft:water
falling: false
#minecraft:water
Adjacent to the source block on cardinal points (ie, on X and Z axes):
Targeted Fluid
minecraft:flowing_water
falling: false
level: 7
#minecraft:water
Adjacent to the source block on diagonals:
Targeted Fluid
minecraft:flowing_water
falling: false
level: 6
#minecraft:water
At the periphery:
Targeted Fluid
minecraft:flowing_water
falling: false
level: 1
#minecraft:water
I am able to pick up the source block water.
Btw, if you're interested I can give you access to the issue tracker so you can add each feature to fix as a card in the project to-do column (which I can convert to issues if further discussion is required). Would likely make it easier to track the progress of solving each issue instead of several lumped in one issue.
I missed the alpha3 comment.
This issue is resolved in 3.12-alpha3:
- Water can be picked up in a bucket.
- Water can be placed, but immediately evaporates. Bucket remains empty.
This is the issue tracker, right? We should have unbundled this one ages ago. I will post issues separately henceforth.
Yes. But I don't think you can automatically add into this: https://github.com/MLG-Fortress/ExtraHardMode/projects/2
As for mob crowding, it seems to be happening on mine. They are indeed taking damage. It took a while but they eventually started dying out within a couple minutes lol.
According to #219 this either wasn't solved or another fix I made later messed it up.
Just noting it here for reference since I didn't recall all of the "waterlogged" blocks stuff that apparently I either didn't modify or implement properly before.
According to #219 this either wasn't solved or another fix I made later messed it up.
Just noting it here for reference since I didn't recall all of the "waterlogged" blocks stuff that apparently I either didn't modify or implement properly before.