try to fix server-side crashes
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
package net.fretux.skillengine.client;
|
||||
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
||||
public final class ClientSkillEngineBridge {
|
||||
|
||||
private ClientSkillEngineBridge() {}
|
||||
|
||||
public static boolean clientHasSkill(ResourceLocation id) {
|
||||
return SkilltreeClientState.isUnlocked(id);
|
||||
}
|
||||
|
||||
public static int clientGetAbilitySlot(ResourceLocation id) {
|
||||
return SkilltreeClientState.getSlotOfAbility(id);
|
||||
}
|
||||
|
||||
public static ResourceLocation[] clientGetAbilitySlots() {
|
||||
return SkilltreeClientState.getAbilitySlots();
|
||||
}
|
||||
|
||||
public static void handleNodeUnlocked(ResourceLocation id, int newSkillPoints, boolean isAbility) {
|
||||
if (isAbility) {
|
||||
SkilltreeClientState.unlockAbility(id);
|
||||
} else {
|
||||
SkilltreeClientState.unlockNode(id);
|
||||
}
|
||||
SkilltreeClientState.setCurrentSkillPoints(newSkillPoints);
|
||||
}
|
||||
|
||||
public static void handleSkillsSync(Iterable<ResourceLocation> unlocked,
|
||||
Iterable<ResourceLocation> unlockedAbilities,
|
||||
int skillPoints,
|
||||
ResourceLocation[] abilitySlots) {
|
||||
SkilltreeClientState.setUnlocked(unlocked);
|
||||
SkilltreeClientState.setUnlockedAbilities(unlockedAbilities);
|
||||
SkilltreeClientState.setCurrentSkillPoints(skillPoints);
|
||||
SkilltreeClientState.setAbilitySlots(abilitySlots);
|
||||
}
|
||||
|
||||
public static void handleCooldownSync(int slot, int cooldown) {
|
||||
SkilltreeClientState.updateCooldown(slot, cooldown);
|
||||
}
|
||||
}
|
||||
@@ -38,14 +38,18 @@ public class SkilltreeClientState {
|
||||
return unlocked.contains(id);
|
||||
}
|
||||
|
||||
public static void setUnlocked(Set<ResourceLocation> ids) {
|
||||
public static void setUnlocked(Iterable<ResourceLocation> ids) {
|
||||
unlocked.clear();
|
||||
unlocked.addAll(ids);
|
||||
for (ResourceLocation id : ids) {
|
||||
unlocked.add(id);
|
||||
}
|
||||
}
|
||||
|
||||
public static void setUnlockedAbilities(Set<ResourceLocation> abilities) {
|
||||
public static void setUnlockedAbilities(Iterable<ResourceLocation> abilities) {
|
||||
unlockedAbilities.clear();
|
||||
unlockedAbilities.addAll(abilities);
|
||||
for (ResourceLocation ability : abilities) {
|
||||
unlockedAbilities.add(ability);
|
||||
}
|
||||
}
|
||||
|
||||
public static void setCurrentSkillPoints(int points) {
|
||||
@@ -92,4 +96,4 @@ public class SkilltreeClientState {
|
||||
public static ResourceLocation[] getAbilitySlots() {
|
||||
return Arrays.copyOf(abilitySlots, abilitySlots.length);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user