fix server-side crashes

This commit is contained in:
2026-03-28 17:47:48 +01:00
parent 4e33002ddb
commit bffcafeebd
5 changed files with 58 additions and 20 deletions
@@ -3,7 +3,6 @@ package net.fretux.skillengine.api;
import net.fretux.skillengine.SkillEngine;
import net.fretux.skillengine.capability.PlayerSkillData;
import net.fretux.skillengine.capability.SkillEngineCapabilities;
import net.fretux.skillengine.client.SkilltreeClientState;
import net.fretux.skillengine.skilltree.AbilityNode;
import net.fretux.skillengine.skilltree.AbilityNodeRegistry;
import net.fretux.skillengine.skilltree.SkillLogic;
@@ -11,6 +10,8 @@ import net.fretux.skillengine.skilltree.SkillNode;
import net.fretux.skillengine.skilltree.SkillNodeRegistry;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.player.Player;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.fml.loading.FMLEnvironment;
import java.util.List;
import java.util.Set;
@@ -130,14 +131,28 @@ public final class SkillEngineAPI {
}
public static boolean clientHasSkill(ResourceLocation id) {
return SkilltreeClientState.isUnlocked(id);
return FMLEnvironment.dist == Dist.CLIENT && ClientAccess.clientHasSkill(id);
}
public static int clientGetAbilitySlot(ResourceLocation id) {
return SkilltreeClientState.getSlotOfAbility(id);
return FMLEnvironment.dist == Dist.CLIENT ? ClientAccess.clientGetAbilitySlot(id) : -1;
}
public static ResourceLocation[] clientGetAbilitySlots() {
return SkilltreeClientState.getAbilitySlots();
return FMLEnvironment.dist == Dist.CLIENT ? ClientAccess.clientGetAbilitySlots() : new ResourceLocation[3];
}
}
private static final class ClientAccess {
private static boolean clientHasSkill(ResourceLocation id) {
return net.fretux.skillengine.client.SkilltreeClientState.isUnlocked(id);
}
private static int clientGetAbilitySlot(ResourceLocation id) {
return net.fretux.skillengine.client.SkilltreeClientState.getSlotOfAbility(id);
}
private static ResourceLocation[] clientGetAbilitySlots() {
return net.fretux.skillengine.client.SkilltreeClientState.getAbilitySlots();
}
}
}