try to fix server-side crashes
This commit is contained in:
@@ -31,20 +31,17 @@ public class ClientboundNodeUnlockedPacket {
|
||||
|
||||
public static void handle(ClientboundNodeUnlockedPacket msg, Supplier<NetworkEvent.Context> ctx) {
|
||||
ctx.get().enqueueWork(() -> {
|
||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> ClientHandler.handle(msg));
|
||||
boolean isAbility = AbilityNodeRegistry.get(msg.id) != null;
|
||||
DistExecutor.unsafeRunWhenOn(
|
||||
Dist.CLIENT,
|
||||
() -> () -> net.fretux.skillengine.client.ClientSkillEngineBridge.handleNodeUnlocked(
|
||||
msg.id,
|
||||
msg.newSkillPoints,
|
||||
isAbility
|
||||
)
|
||||
);
|
||||
});
|
||||
ctx.get().setPacketHandled(true);
|
||||
}
|
||||
|
||||
private static final class ClientHandler {
|
||||
private static void handle(ClientboundNodeUnlockedPacket msg) {
|
||||
if (AbilityNodeRegistry.get(msg.id) != null) {
|
||||
net.fretux.skillengine.client.SkilltreeClientState.unlockAbility(msg.id);
|
||||
} else {
|
||||
net.fretux.skillengine.client.SkilltreeClientState.unlockNode(msg.id);
|
||||
}
|
||||
net.fretux.skillengine.client.SkilltreeClientState.setCurrentSkillPoints(msg.newSkillPoints);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,13 +27,15 @@ public class ClientboundSyncCooldownPacket {
|
||||
}
|
||||
|
||||
public static void handle(ClientboundSyncCooldownPacket msg, Supplier<NetworkEvent.Context> ctx) {
|
||||
ctx.get().enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> ClientHandler.handle(msg)));
|
||||
ctx.get().enqueueWork(() ->
|
||||
DistExecutor.unsafeRunWhenOn(
|
||||
Dist.CLIENT,
|
||||
() -> () -> net.fretux.skillengine.client.ClientSkillEngineBridge.handleCooldownSync(
|
||||
msg.slot,
|
||||
msg.cooldown
|
||||
)
|
||||
)
|
||||
);
|
||||
ctx.get().setPacketHandled(true);
|
||||
}
|
||||
|
||||
private static final class ClientHandler {
|
||||
private static void handle(ClientboundSyncCooldownPacket msg) {
|
||||
net.fretux.skillengine.client.SkilltreeClientState.updateCooldown(msg.slot, msg.cooldown);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,17 +64,16 @@ public class ClientboundSyncSkillsPacket {
|
||||
|
||||
public static void handle(ClientboundSyncSkillsPacket msg, Supplier<NetworkEvent.Context> ctx) {
|
||||
ctx.get().enqueueWork(() -> {
|
||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> ClientHandler.handle(msg));
|
||||
DistExecutor.unsafeRunWhenOn(
|
||||
Dist.CLIENT,
|
||||
() -> () -> net.fretux.skillengine.client.ClientSkillEngineBridge.handleSkillsSync(
|
||||
msg.unlocked,
|
||||
msg.unlockedAbilities,
|
||||
msg.skillPoints,
|
||||
msg.abilitySlots
|
||||
)
|
||||
);
|
||||
});
|
||||
ctx.get().setPacketHandled(true);
|
||||
}
|
||||
|
||||
private static final class ClientHandler {
|
||||
private static void handle(ClientboundSyncSkillsPacket msg) {
|
||||
net.fretux.skillengine.client.SkilltreeClientState.setUnlocked(msg.unlocked);
|
||||
net.fretux.skillengine.client.SkilltreeClientState.setUnlockedAbilities(msg.unlockedAbilities);
|
||||
net.fretux.skillengine.client.SkilltreeClientState.setCurrentSkillPoints(msg.skillPoints);
|
||||
net.fretux.skillengine.client.SkilltreeClientState.setAbilitySlots(msg.abilitySlots);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user