What aren't you understanding?
To remove strafing in skeletons you need to replace the AI of each skeleton with your own one that doesn't tell the skeleton to strafe.
You do this by
1) Having your own implementation of RangedBowAttackGoal that doesn't strafe
2) Replacing the AI of each skeleton with your own AI implementation
The EntityJoinWorldEvent gives you access to all entities that join the world. You want to subscribe to this event. Whenever an entity is added to a world you're code will be called. You want to check if the entity is a skeleton, and if so replace it's AI. Because AbstractSkeletonEntity#aiArrowAttack is private and final, you need to use an Access Transformer to make it public and non-final so that you can replace it.
Because all of the fields in RangedBowAttackGoal are private, you'll probably want to AT them to public with public net.minecraft.entity.ai.goal.RangedBowAttackGoal * # all fields.
The most compatible way to remove the strafing would probably be to just set strafingTime to -2 right before calling super/delegate.tick().