Skip to content
This repository was archived by the owner on Feb 25, 2026. It is now read-only.

Commit bc54f13

Browse files
authored
Merge pull request #362 from Steinebeisser/feat/new-garden-update
add new crops for calculator and pests for clearing on track
2 parents 8bf19f4 + 11d1453 commit bc54f13

10 files changed

Lines changed: 63 additions & 10 deletions

File tree

src/main/java/com/jelly/farmhelperv2/config/FarmHelperConfig.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public class FarmHelperConfig extends Config {
9696
"S Shape - Pumpkin/Melon", // 1
9797
"S Shape - Pumpkin/Melon Melongkingde", // 2
9898
"S Shape - Pumpkin/Melon Default Plot", // 3
99-
"S Shape - Sugar Cane", // 4
99+
"S Shape - Sugar Cane/Wild Roses/Sunflower", // 4
100100
"S Shape - Cactus", // 5
101101
"S Shape - Cactus SunTzu Black Cat", // 6
102102
"S Shape - Cocoa Beans", // 7
@@ -2943,6 +2943,9 @@ public enum CropEnum {
29432943
COCOA_BEANS("Cocoa Beans"),
29442944
MUSHROOM("Mushroom"),
29452945
MUSHROOM_ROTATE("Mushroom"),
2946+
SUNFLOWER("Sunflower"),
2947+
MOONFLOWER("Moonflower"),
2948+
ROSE("Rose"),
29462949
;
29472950

29482951
final String localizedName;

src/main/java/com/jelly/farmhelperv2/feature/impl/BPSTracker.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.jelly.farmhelperv2.macro.AbstractMacro;
1010
import com.jelly.farmhelperv2.util.LogUtils;
1111
import net.minecraft.block.BlockCrops;
12+
import net.minecraft.block.BlockDoublePlant;
1213
import net.minecraft.block.BlockNetherWart;
1314
import net.minecraft.block.BlockReed;
1415
import net.minecraft.client.Minecraft;
@@ -181,6 +182,12 @@ public void onBlockChange(PlayerDestroyBlockEvent event) {
181182
blocksBroken++;
182183
}
183184
break;
185+
case SUNFLOWER:
186+
case MOONFLOWER:
187+
case ROSE:
188+
if (event.block instanceof BlockDoublePlant) {
189+
blocksBroken++;
190+
}
184191
case MELON:
185192
if (event.block.equals(Blocks.melon_block)) {
186193
blocksBroken++;

src/main/java/com/jelly/farmhelperv2/feature/impl/PestsDestroyer.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,11 @@ public class PestsDestroyer implements IFeature {
7373
new Tuple<>("Rat",
7474
"ewogICJ0aW1lc3RhbXAiIDogMTYxODQxOTcwMTc1MywKICAicHJvZmlsZUlkIiA6ICI3MzgyZGRmYmU0ODU0NTVjODI1ZjkwMGY4OGZkMzJmOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJCdUlJZXQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYThhYmI0NzFkYjBhYjc4NzAzMDExOTc5ZGM4YjQwNzk4YTk0MWYzYTRkZWMzZWM2MWNiZWVjMmFmOGNmZmU4IiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0="),
7575
new Tuple<>("Slug",
76-
"ewogICJ0aW1lc3RhbXAiIDogMTY5NzQ3MDQ0MzA4MiwKICAicHJvZmlsZUlkIiA6ICJkOGNkMTNjZGRmNGU0Y2IzODJmYWZiYWIwOGIyNzQ4OSIsCiAgInByb2ZpbGVOYW1lIiA6ICJaYWNoeVphY2giLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2E3OWQwZmQ2NzdiNTQ1MzA5NjExMTdlZjg0YWRjMjA2ZTJjYzUwNDVjMTM0NGQ2MWQ3NzZiZjhhYzJmZTFiYSIKICAgIH0KICB9Cn0")
76+
"ewogICJ0aW1lc3RhbXAiIDogMTY5NzQ3MDQ0MzA4MiwKICAicHJvZmlsZUlkIiA6ICJkOGNkMTNjZGRmNGU0Y2IzODJmYWZiYWIwOGIyNzQ4OSIsCiAgInByb2ZpbGVOYW1lIiA6ICJaYWNoeVphY2giLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2E3OWQwZmQ2NzdiNTQ1MzA5NjExMTdlZjg0YWRjMjA2ZTJjYzUwNDVjMTM0NGQ2MWQ3NzZiZjhhYzJmZTFiYSIKICAgIH0KICB9Cn0"),
77+
new Tuple<>("Praying Mantis",
78+
"ewogICJ0aW1lc3RhbXAiIDogMTc2MDQ1MDQxOTYxMiwKICAicHJvZmlsZUlkIiA6ICI0OWIzODUyNDdhMWY0NTM3YjBmN2MwZTFmMTVjMTc2NCIsCiAgInByb2ZpbGVOYW1lIiA6ICJiY2QyMDMzYzYzZWM0YmY4IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzFlMDRiYjYzNjdjYWE0ZTg4ZjVmZDBlZTgwZjA3NDVkMTM3YTYwNjAyMjNkYmJjNDJhMTY0NzFmZGY2NGJiODMiLAogICAgICAibWV0YWRhdGEiIDogewogICAgICAgICJtb2RlbCIgOiAic2xpbSIKICAgICAgfQogICAgfQogIH0KfQ=="),
79+
new Tuple<>("Firefly", "ewogICJ0aW1lc3RhbXAiIDogMTc2MDQ1MDQyMjEzNiwKICAicHJvZmlsZUlkIiA6ICIzNDY4Y2VjMWFlOTY0YWRmYWQyNjEzMGEwZGQ0NjRkYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJzdXJlZWxta18iLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGNlNzllOTBhZGYzNDcxOGYzMTNlYzI0ZDZjNjEzNWI2OWIzNzg4YzYxODQ5ODQ0NmNjYzgzY2E2NDBjMGIxNCIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"),
80+
new Tuple<>("Dragonfly", "ewogICJ0aW1lc3RhbXAiIDogMTc2MDQ1MDQxODQzNywKICAicHJvZmlsZUlkIiA6ICIwNjY5Y2E1MGYyZWU0NTQxODhlYWQ3YTM3NTkzNDRlMCIsCiAgInByb2ZpbGVOYW1lIiA6ICJDcjR6eWNsb3duVFYiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjU0YWZmNGMwYjJkY2UzYTY3MjM0OWNjMGVlOWU2ZjNhOWRlZWJlNGIzNTU2ZTg0NjExZWNhMjUwYTc4MjFiZiIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9")
7781
);
7882
private Optional<PlotUtils.Plot> closestPlot = Optional.empty();
7983
@Getter
@@ -420,7 +424,6 @@ public void onTickExecute(TickEvent.ClientTickEvent event) {
420424
escapeState = EscapeState.GO_TO_HUB;
421425
mc.thePlayer.sendChatMessage("/skyblock");
422426
delayClock.schedule((long) (5_000 + Math.random() * 1_500));
423-
break;
424427
}
425428
break;
426429
case GO_TO_GARDEN:

src/main/java/com/jelly/farmhelperv2/feature/impl/ProfitCalculator.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,19 @@ public class ProfitCalculator implements IFeature {
5151
add(new BazaarItem("Cactus Green", "ENCHANTED_CACTUS", ENCHANTED_TIER_2, 3).setImage());
5252
add(new BazaarItem("Red Mushroom", "ENCHANTED_RED_MUSHROOM", ENCHANTED_TIER_1, 10).setImage());
5353
add(new BazaarItem("Brown Mushroom", "ENCHANTED_BROWN_MUSHROOM", ENCHANTED_TIER_1, 10).setImage());
54+
add(new BazaarItem("Moonflower", "ENCHANTED_MOONFLOWER", ENCHANTED_TIER_1, 4).setImage());
55+
add(new BazaarItem("Sunflower", "ENCHANTED_SUNFLOWER", ENCHANTED_TIER_1, 4).setImage());
56+
add(new BazaarItem("Rose", "ENCHANTED_WILD_ROSE", ENCHANTED_TIER_1, 4).setImage());
5457
}};
5558
public final List<BazaarItem> rngDropToCount = new ArrayList<BazaarItem>() {{
5659
add(new BazaarItem("Cropie", "CROPIE", 1, 25_000).setImage());
5760
add(new BazaarItem("Squash", "SQUASH", 1, 75_000).setImage());
5861
add(new BazaarItem("Fermento", "FERMENTO", 1, 250_000).setImage());
5962
add(new BazaarItem("Burrowing Spores", "BURROWING_SPORES", 1, 1).setImage());
63+
add(new BazaarItem("Helianthus", "HELIANTHUS", 1, 275_000).setImage());
6064
}};
61-
public final List<String> cropsToCountList = Arrays.asList("Hay Bale", "Seeds", "Carrot", "Potato", "Melon", "Pumpkin", "Sugar Cane", "Cocoa Beans", "Nether Wart", "Cactus Green", "Red Mushroom", "Brown Mushroom");
62-
public final List<String> rngToCountList = Arrays.asList("Cropie", "Squash", "Fermento", "Burrowing Spores");
65+
public final List<String> cropsToCountList = Arrays.asList("Hay Bale", "Seeds", "Carrot", "Potato", "Melon", "Pumpkin", "Sugar Cane", "Cocoa Beans", "Nether Wart", "Cactus Green", "Red Mushroom", "Brown Mushroom", "Moonflower", "Sunflower", "Rose");
66+
public final List<String> rngToCountList = Arrays.asList("Cropie", "Squash", "Fermento", "Burrowing Spores", "Helianthus");
6367
private final Minecraft mc = Minecraft.getMinecraft();
6468
@Getter
6569
private final NumberFormat formatter = NumberFormat.getCurrencyInstance(new Locale("en", "US"));
@@ -127,6 +131,14 @@ public static String getImageName(String name) {
127131
return "fermento.png";
128132
case "Burrowing Spores":
129133
return "burrowingspores.png";
134+
case "Moonflower":
135+
return "moonflower.png";
136+
case "Sunflower":
137+
return "sunflower.png";
138+
case "Rose":
139+
return "rose.png";
140+
case "Helianthus":
141+
return "helianthus.png";
130142
default:
131143
throw new IllegalArgumentException("No image for " + name);
132144
}

src/main/java/com/jelly/farmhelperv2/util/PlayerUtils.java

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@
44
import com.jelly.farmhelperv2.config.FarmHelperConfig;
55
import com.jelly.farmhelperv2.config.struct.Rewarp;
66
import com.jelly.farmhelperv2.failsafe.FailsafeManager;
7+
import com.jelly.farmhelperv2.handler.GameStateHandler;
78
import com.jelly.farmhelperv2.handler.MacroHandler;
89
import com.jelly.farmhelperv2.util.helper.Clock;
9-
import com.jelly.farmhelperv2.util.AngleUtils;
10-
import com.jelly.farmhelperv2.handler.GameStateHandler;
1110
import net.minecraft.block.*;
1211
import net.minecraft.client.Minecraft;
1312
import net.minecraft.entity.Entity;
@@ -54,7 +53,7 @@ public static FarmHelperConfig.CropEnum getFarmingCrop() {
5453
if (mc.theWorld == null) return FarmHelperConfig.CropEnum.NONE;
5554
if (mc.theWorld.getBlockState(pos) == null) return FarmHelperConfig.CropEnum.NONE;
5655
Block block = mc.theWorld.getBlockState(pos).getBlock();
57-
if (block instanceof BlockCrops || block instanceof BlockReed || block instanceof BlockCocoa || block instanceof BlockNetherWart || block instanceof BlockMelon || block instanceof BlockPumpkin || block instanceof BlockMushroom || block instanceof BlockCactus) {
56+
if (block instanceof BlockCrops || block instanceof BlockReed || block instanceof BlockCocoa || block instanceof BlockNetherWart || block instanceof BlockMelon || block instanceof BlockPumpkin || block instanceof BlockMushroom || block instanceof BlockCactus || block instanceof BlockDoublePlant) {
5857
closestCrop = Pair.of(block, pos);
5958
foundCropUnderMouse = true;
6059
}
@@ -76,7 +75,7 @@ public static FarmHelperConfig.CropEnum getFarmingCrop() {
7675
}
7776
BlockPos pos = BlockUtils.getRelativeBlockPos(x, y, z, yaw);
7877
Block block = mc.theWorld.getBlockState(pos).getBlock();
79-
if (!(block instanceof BlockCrops || block instanceof BlockReed || block instanceof BlockCocoa || block instanceof BlockNetherWart || block instanceof BlockMelon || block instanceof BlockPumpkin || block instanceof BlockMushroom || block instanceof BlockCactus))
78+
if (!(block instanceof BlockCrops || block instanceof BlockReed || block instanceof BlockCocoa || block instanceof BlockNetherWart || block instanceof BlockMelon || block instanceof BlockPumpkin || block instanceof BlockMushroom || block instanceof BlockCactus || block instanceof BlockDoublePlant))
8079
continue;
8180

8281
if (closestCrop == null || mc.thePlayer.getPositionVector().distanceTo(new Vec3(pos.getX() + 0.5f, pos.getY(), pos.getZ() + 0.5f)) < mc.thePlayer.getPositionVector().distanceTo(new Vec3(closestCrop.getRight().getX() + 0.5f, closestCrop.getRight().getY(), closestCrop.getRight().getZ() + 0.5f))) {
@@ -89,6 +88,7 @@ public static FarmHelperConfig.CropEnum getFarmingCrop() {
8988

9089
if (closestCrop != null) {
9190
Block left = closestCrop.getLeft();
91+
BlockPos pos = closestCrop.getRight();
9292
if (left.equals(Blocks.wheat)) {
9393
return FarmHelperConfig.CropEnum.WHEAT;
9494
} else if (left.equals(Blocks.carrots)) {
@@ -111,6 +111,23 @@ public static FarmHelperConfig.CropEnum getFarmingCrop() {
111111
return FarmHelperConfig.CropEnum.MUSHROOM;
112112
} else if (left.equals(Blocks.cactus)) {
113113
return FarmHelperConfig.CropEnum.CACTUS;
114+
} else if (left.equals(Blocks.double_plant)) {
115+
BlockDoublePlant plantBlock = (BlockDoublePlant) left;
116+
BlockDoublePlant.EnumPlantType variant = plantBlock.getVariant(mc.theWorld, pos);
117+
118+
if (variant == BlockDoublePlant.EnumPlantType.SUNFLOWER) {
119+
List<String> scoreboardLines = ScoreboardUtils.getScoreboardLines(true);
120+
121+
boolean isDay = scoreboardLines.contains("Day");
122+
LogUtils.sendDebug("Is Day: " + (isDay ? "true" : "false"));
123+
if (isDay) {
124+
return FarmHelperConfig.CropEnum.SUNFLOWER;
125+
} else {
126+
return FarmHelperConfig.CropEnum.MOONFLOWER;
127+
}
128+
} else if (variant == BlockDoublePlant.EnumPlantType.ROSE) {
129+
return FarmHelperConfig.CropEnum.ROSE;
130+
}
114131
}
115132
}
116133
LogUtils.sendError("Can't detect crop type! Lower average BPS failsafe will be disabled!");
@@ -384,7 +401,9 @@ public static EnumFacing getHorizontalFacing(float yaw) {
384401

385402
public static void closeScreen() {
386403
if (mc.currentScreen != null && mc.thePlayer != null) {
387-
mc.addScheduledTask(() -> { mc.thePlayer.closeScreen();});
404+
mc.addScheduledTask(() -> {
405+
mc.thePlayer.closeScreen();
406+
});
388407
}
389408
}
390409

src/main/java/com/jelly/farmhelperv2/util/ScoreboardUtils.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,15 @@ public void onTick(TickEvent.PlayerTickEvent event) {
6464
for (Score score : scores) {
6565
ScorePlayerTeam team = scoreboard.getPlayersTeam(score.getPlayerName());
6666
String playerName = ScorePlayerTeam.formatPlayerName(team, score.getPlayerName());
67+
68+
if (playerName.contains("☀")) {
69+
scoreboardLines.add("Day");
70+
cleanScoreboardLines.add("Day");
71+
} else if (playerName.contains("☽")) {
72+
scoreboardLines.add("Night");
73+
cleanScoreboardLines.add("Night");
74+
}
75+
6776
scoreboardLines.add(playerName);
6877
cleanScoreboardLines.add(cleanSB(playerName));
6978
}
7.65 KB
Loading
179 Bytes
Loading
637 Bytes
Loading
151 Bytes
Loading

0 commit comments

Comments
 (0)