Hello swarm intelligence,
For some context... I have been trying to develop a Minecraft Forge Mod for 1.20.1 (Forge mdk Version 47.2.20) for three weeks now...
In theory everything works. Code (at least from my understanding) works, I always get 'BUILD SUCCESFUL IN ... ' when setting up the workspace..
Now I think that's where my problem lies. But I do not know what I am doing wrong.
Using what-feels-like every tutorial (including the forge documentation) out there to setup my workspace, the example mod compiles and builds, but as soon as I create a new class (or even change something in the main class; add new code that requires new imports) being told by IntelliJ that
Cannot resolve method 'getDistanceSq(PlayerEntity)' [or any other Method, that requires an input]
Cannot resolve symbol 'PlayerEntity'
etc.
or when using Eclipse...
PlayerEntity cannot be resolved to a type [and probably related: The import net.minecraft.entity cannot be resolved]
world cannot be resolved or is not a field
etc.
I am starting to question my sanity since I feel like I did everything I could...
Yes, I have got a JDK installed (17, added to %PATH% and JAVA_HOME, tried different)
Yes, I used .\gradlew --refresh-dependencies (multiple times)
I have even setup the same thing on a fresh setup VM... still no success...
Now if I am doing a rookie mistake, I'm sorry for wasting your time..
But if you could point me to what I'm doing wrong, or anything that might resolve this I would be so thankful
Thanks in advance
(Heres the code, if interested)
// here was a package declaration, bevore I uploaded this here
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.StringTextComponent;
import java.util.List;
public class DistanceCalculator {
public static double getSumOfDistancesToNearbyPlayers() {
// Get the Minecraft instance
Minecraft minecraft = Minecraft.getInstance();
// Get the player controlled by the mod
PlayerEntity player = minecraft.player;
// Get all players in the world
List<PlayerEntity> players = minecraft.world.getPlayers();
double sumDistance = 0;
// Iterate over all players
for (PlayerEntity otherPlayer : players) {
// Check if the other player is within 50 blocks range
double distance = player.getDistanceSq(otherPlayer);
if (distance <= 50 * 50) { // Compare squared distances to avoid expensive square root calculations
sumDistance += Math.sqrt(distance);
}
}
return sumDistance;
}
public static void displaySumOfDistancesToNearbyPlayers() {
double sumDistance = getSumOfDistancesToNearbyPlayers();
Minecraft.getInstance().player.sendMessage(new StringTextComponent("Sum of distances to nearby players within 50 blocks: " + sumDistance));
}
private double calculateWeight(double distance) {
// (2.718^(0.13*distance))-1
double calculatedWeight = -1;
calculatedWeight = Math.exp(0.13 * distance) - 1;
return calculatedWeight;
}
}