soft depend on ProtocolLib